package homework0718;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class Homework_1 {
    private FileInputStream fis = null;
    private FileOutputStream fos = null;
    private Scanner scanner = new Scanner(System.in);

    // 1. 写一个方法，实现文件的拷贝
    public void copyFile(String txt, String newTxt) {
        try {
            fis = new FileInputStream(txt);//输入
            fos = new FileOutputStream(newTxt);//输出
            int b = 0;
            while ((b = fis.read()) != -1) {//如果能读取到就一直读取
                fos.write(b);//再把读取的输出给新文件
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fos != null) {
                    fos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    // 2. 输入一段字符串，将该字符串追加到指定文本文件中
    public void addString() {
        System.out.println("请输入一个字符串");
        String str = scanner.next();
        try {
            fos = new FileOutputStream("d:/a/d.txt", true);
            //创建文件输出流以写入由指定的File对象表示的文件。 如果第二个参数是true ，则字节将写入文件的末尾而不是开头。 创建一个新的FileDescriptor对象来表示此文件连接。
            fos.write(str.getBytes(StandardCharsets.UTF_8));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fos != null) {
                    fos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        Homework_1 homework_1 = new Homework_1();
        homework_1.copyFile("d:/a/b.txt", "d:/a/c.txt");
        homework_1.addString();
    }
}
